﻿using BonjourQuotation.ObjectModel.AccountData;
using BonjourQuotation.ObjectModel.BusinessData;
using BonjourQuotation.ObjectModel.ErrorData;
using BonjourQuotation.ObjectModel.VendorData;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BonjourQuotation.DataAccess.Repositories
{
    public interface IVendorRepository : IDisposable
    {
        ErrorBInfo CreateVendor(VendorDetailsBData VendorData);
        ErrorBInfo CreateVendorContractDetail(VendorContractsFromDetailsBData VendorContractDetailData);
        ErrorBInfo CreateVendorContract(VendorContractsBData VendorContractData);
        ManageVendorsGridBData LoadAllVendors(int PageNumber);
        ManageVendorsGridBData LoadSearchedVendors(ManageVendorsGridBData Data);
        VendorContractsBData LoadVendorContractsByID(int VendorID);
        VendorContractsFromDetailsBData LoadVendorContractDetailsByID(int VendorID, int SeasonID);
        VendorDetailsBData LoadVendorDetailsByID(int VendorID);
        VendorGroupsBData LoadVendorGroupsByID(int VendorID);
        ErrorBInfo SaveVendorContractsData(List<VendorContractsRowBData> Data, int VendorID);
        ErrorBInfo SaveVendorContractDetailsData(VendorContractsFromDetailsBData VendorContractDetailsData);
        ErrorBInfo SaveVendorDetailsData(VendorDetailsBData Data);
        ErrorBInfo SaveVendorsGridData(ManageVendorsGridBData Data);
        ErrorBInfo UpdateVendorContractPath(int VendorID, int SeasonID, string VendorContractPath);
        Dictionary<int, string> LoadArea(int RegionID);
        Dictionary<int, string> LoadRegion(int CountryID);
        Dictionary<string, string> LoadState();
        Dictionary<int, string> LoadCity(int CountryID, string StateID);
    }
}
